package com.sky.mapper.user;

import com.sky.pojo.ShoppingCart;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 购物车数据访问层
 * @author zgp
 * @version V1.0
 * @date 2025-01-27 15:00
 */
@Mapper
public interface ShoppingCartMapper {
    /**
     * 根据用户id查询购物车信息
     * @param userId 用户id
     * @return 购物车信息列表
     */
    List<ShoppingCart> selectByUserId(Long userId);

    /**
     * 新增购物车信息
     * @param shoppingCart 购物车
     */
    void insert(ShoppingCart shoppingCart);

    /**
     * 根据用户id和菜品id或套餐id查询
     * @param shoppingCart 查询参数实体
     * @return
     */
    ShoppingCart selectByUserIdAndDishIdOrSetmealId(ShoppingCart shoppingCart);

    /**
     * 根据id增加购物车中已添加菜品/套餐份数
     * @param id 购物id
     */
    void updateAddNumberById(Long id);

    /**
     * 删除用户购物车信息
     * @param userId 用户id
     */
    void deleteByUserId(Long userId);

    /**
     * 根据id减少购物车中已添加菜品/套餐份数
     * @param id 购物车项id
     */
    void updateSubNumberById(Long id);

    /**
     * 根据id删除购物车项信息
     * @param id 购物车项id
     */
    void deleteById(Long id);

    /**
     * 查询用户购物车商品制作时间
     * @param userId 用户id
     * @return 制作时间
     */
    Long reportGoodsMakeTimeByUserId(Long userId);
}
